当前位置: JAVA > java读取文件流(xml与properties)

java读取文件流(xml与properties)

2020-02-25 分类:JAVA 作者:admin 阅读(21)

Xml

1.DOM解析(官方)

try {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder               db = dbf.newDocumentBuilder();
Document                document = db.parse("file");
NodeList                              list = document.getElementsByTagName("ndoe");//常规的DOM操作
} catch (Exception e) {
e.printStackTrace();
}

parse()方法加载XML文件到当前程序。

将XML文件全部加载到内存中,然后逐个解析。

2.SAX解析(官方)

try {

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser               parser = factory.newSAXParser();
parser.parse("file",handler);
}catch (Exception e) {
e.printStackTrace();
}

参数handler是一个继承了DefaultHandler类的子类的实例化对象。

这个子类中解析文档、元素的方法如下:

--------startDocument()                                      //解析XML文件开始

-----------------------startElement()                       //开始解析某个元素

-----------------------endElement()                        //结束解析该元素(通常将解析获得的信息存到一个对象)

-----------------------startElement()                       //开始解析另一个个元素

-----------------------endElement()                        //结束解析元素

---------endDocument()                                      //解析XML文件结束

SAX解析XML文件的方法是从头到尾一步一步地解析文档的节点元素,是一种事件驱动模式,对内存耗费

较小。

3.JDOM解析(非官方,DOM的拓展)

需要事先导入一个JDOM的jar包到项目。后面导入的类也是JDOM包下的的类

try {

SAXBuilder saxbuilder = new SAXBuilder();
Document    document = saxbuilder.build("file");
Element    rootElement = document.getRootElement(); //获得XML文件的根节点
}catch (Exception e) {
e.printStackTrace();
}

获得根节点之后,通过getChildren()方法获得其子节点的List集合。

4.DOM4J解析(非官方,DOM的拓展,现在比较流行的)

同理,由于是非官方的,我们依然需要引入一个DOM4J的jar包

try {

SAXReader    reader = new SAXReader();
Document document = reader.read("file");
 Element rootElement = document.getRootElement();//获得XML文件的根节点
}catch (Exception e) {
e.printStackTrace();
}

性能优异,灵活性好,功能强大,易使用,所以现在比较流行使用DOM4J解析XML。

注意:以上所有引入文件方法的参数"file",可以是文件路径字符串,可以是一个文件对象,也可以是

           一个文件输入流对象。


Properties

以Redis的配置文件redis.properties为例,配置文件默认路径为src路径

方式一 、通过Properties类来封装配置文件方式
//1、 通过类加载器,获取配置文件的输入流。
InputStream in =
当前类(比如User).class.getClassLoader().getResourceAsStream("redis.properties");
//2、新建一个Properties对象
Properties properties = new Properties();
try {
pro.load(in);    //properties对象封装配置文件的输入流,现在文件里面的信息都已被封装成String
} catch (IOException e) {
e.printStackTrace();
}
//3、获取配置文件.properties中的配置信息(伪代码)
String strvalue= properties.getProperty("配置文件中的KEY");
//4、如果是int类型
int intvalue = Integer.parseInt(strvalue);

方式二、 通过ResourceBundle类来封装配置文件
//1、通过ResourceBundle 来加载redis配置文件,不需要写后缀,不需要写后缀,不需要写后缀
ResourceBundle properties = ResourceBundle.getBundle("redis");
//2、获取配置文件.properties中的配置信息(伪代码)
String strvalue= properties.getProperty("配置文件中的KEY");
//3、如果是int类型
int intvalue = Integer.parseInt(strvalue);

 

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏

支付宝
微信
0

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

共有 0 - java读取文件流(xml与properties)

博客简介

精彩评论

  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    分别用不同厚度的筏板定义,画图后这设置筏板变截面处理。 http://f.fwxgx.co...

    评:新文章!
  • admin(6年前 (2020-03-09))

    新增一个框架图! http://biji.jinli.vip/wp-content/upl...

    评:新文章!
  • 一位WordPress评论者(6年前 (2020-02-13))

    嗨,这是一条评论。 要开始审核、编辑及删除评论,请访问仪表盘的“评论”页面。 评论者头像来自...

    评:世界,您好!